package hui.com.dao;

import hui.com.model.entity.PermsEntity;
import hui.com.model.entity.RoleEntity;
import hui.com.model.entity.UserEntity;
import hui.com.model.req.users.RequestGetUserRoleAndPerms;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserDao {

    /**
     * 新增用户
     */
    Boolean addUser(@Param("users")UserEntity user);
    /**
     * 注销用户/修改用户
     */
    Boolean updUser(@Param("users")UserEntity user);

    /**
     * 获取用户的私有权限和角色
     */
    List<UserEntity> getUserRoleAndPerms(@Param("users") RequestGetUserRoleAndPerms userRoleAndPerms);

    /**
     * 获取用户的私有权限和角色
     */
    Integer getUserRoleAndPermsPage(@Param("users") RequestGetUserRoleAndPerms userRoleAndPerms);
//    /**
//     * 用户对应的私有权限
//     */
//    List<UserEntity> getUserPerms(@Param("id")Integer id);
//    /**
//     *
//     * 通过用户id查询，所拥有的角色。该用户所拥有的角色权限Code
//     */
//    List<UserEntity> getUserRolePerms(@Param("users")UserEntity users);


    /**
     *用户-新增角色权限
     */
    Boolean addUserRole(@Param("UID")Integer UID,@Param("roleIDArray")Integer[] roleIDArray);

    /**
     * 用户-删除角色权限
     */
    Boolean deleteUserRole(@Param("UID")Integer UID,@Param("roleID")Integer roleID);

    /**
     * 用户-新增私有权限
     */
    Boolean addUserPerms(@Param("UID")Integer UID,@Param("permsIDArray")Integer[] permsIDArray);

    /**
     * 用户-删除私有权限
     */
    Boolean deleteUserPerms(@Param("UID")Integer UID,@Param("permsID")Integer permsID);

    /**
     * 获取用户没有的权限
     */
    List<PermsEntity> getNotINUserPerms(@Param("users")UserEntity user);

    /**
     * 获取用户没有的角色
     */
    List<RoleEntity> getNotINUserRole(@Param("users")UserEntity user);

}
